﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Do_an_C_sharp.DAL;
using Do_an_C_sharp.BLL;

namespace Do_an_C_sharp
{
    public partial class HangHoaGUI : Form
    {
        HangHoaController HANG = new HangHoaController();
        public HangHoaGUI()
        {
            InitializeComponent();
        }

        public bool checkinfo()
        {
            if (rtxMota.Text.Length > 100)
            {
                MessageBox.Show("Mô tả không dài quá 100 kí tự !!!!!");
                return false;
            }
            foreach (Control ctr in groupBox1.Controls)
            {
                if (ctr.Text == "")
                {
                    MessageBox.Show("Vui lòng nhập đầy đủ thông tin");
                    return false;
                }
            }
            return true;
        }

        private void btnTimkiem_Click(object sender, EventArgs e)
        {
            string key = uCtimkiem1.tratri();
            if (uCtimkiem1.isTimtheoma())
            {
                if (HANG.timelement(key) != null)
                {
                    dataGridView1.DataSource = HANG.timma(key);
                }
                else
                    MessageBox.Show("Không tìm thấy");
            }
            else
            {
                dataGridView1.DataSource = HANG.timten(key);
            }
        }
        private void disable(bool check)
        {
            btnSua.Enabled = btnTimkiem.Enabled = btnXoa.Enabled = check;
        }
        private void capnhat()
        {
            HANG.luu();
            dataGridView1.DataSource = HANG.layhang();
        }

        private void HangHoa_Load(object sender, EventArgs e)
        {
            capnhat();
            btnThem.Text = "Thêm";
            disable(true);
            txtMahang.Enabled = false;
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            HANG.luu();
            capnhat();
        }

        private void txtSoluong_KeyPress(object sender, KeyPressEventArgs e)
        {
            char c = e.KeyChar;
            if (!char.IsDigit(c))
                if (c != '\b')
                    e.Handled = true;
        }

        private void txtGia_KeyPress(object sender, KeyPressEventArgs e)
        {
            char c = e.KeyChar;
            if (!char.IsDigit(c))
            {
                if (c == '\b')
                {
                }
                else
                {
                    if (c == '.')
                    {
                        if (txtGia.Text.IndexOf(c) == -1)
                        {
                            if (txtGia.Text == "")
                                e.Handled = true;
                        }
                        else
                            e.Handled = true;
                    }
                    else
                        e.Handled = true;
                }
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (btnThem.Text == "Thêm")
            {
                txtMahang.Enabled = true;
                txtGia.Text = txtBaohanh.Text = txtDonvitinh.Text = txtMahang.Text = txtNhasx.Text = txtSoluong.Text = txtTenhang.Text = rtxMota.Text = "";
                btnThem.Text = "Cập nhật";
                disable(false);
            }
            else
            {
                if (HANG.timelement(txtMahang.Text.Trim()) != null)
                {
                    MessageBox.Show("Mặt hàng này đã tồn tại");
                }
                else
                {
                    if (checkinfo())
                    {
                        HANG.them(txtMahang.Text, txtBaohanh.Text, txtTenhang.Text, Convert.ToInt32(txtSoluong.Text), rtxMota.Text, txtNhasx.Text, Convert.ToInt32(txtGia.Text), txtDonvitinh.Text);
                        txtMahang.Enabled = false;
                        MessageBox.Show("Thêm thành công");
                        btnThem.Text = "Thêm";
                        capnhat();
                        disable(true);
                    }
                }
            }
            
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            DialogResult kt;
            if ((kt = MessageBox.Show("Bạn chắc chắn muốn xóa mặt hàng này?", "Xác nhận", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) == DialogResult.OK)
            {
                HANG.xoa(txtMahang.Text.Trim());
                capnhat();
                
            }
        }

        private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            int dong = e.RowIndex;
            string ma = dataGridView1.Rows[dong].Cells["MAHANG"].Value.ToString();
            MatHang nv = HANG.timelement(ma);
            txtBaohanh.Text = nv.THONGTINBAOHANH;
            txtDonvitinh.Text = nv.DONVITINH;
            txtGia.Text = nv.DGBAN.ToString();
            txtMahang.Text = nv.MAHANG;
            txtNhasx.Text = nv.NHASX;
            txtSoluong.Text = nv.SOLUONG.ToString();
            txtTenhang.Text = nv.TENHANG;
            rtxMota.Text = nv.MOTA;
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (checkinfo())
            {
                if (HANG.sua(txtMahang.Text, txtNhasx.Text, Convert.ToInt32(txtSoluong.Text), txtDonvitinh.Text, txtTenhang.Text, txtBaohanh.Text, Convert.ToInt32(txtGia.Text), rtxMota.Text))
                    MessageBox.Show("Sửa thành công");
                else
                    MessageBox.Show("Thất bại vì lỗi update sql");
                capnhat();
            }
        }

        private void txtMahang_Click(object sender, EventArgs e)
        {
            TextBox t = (TextBox)sender;
            t.SelectAll();
        }

        private void rtxMota_Click(object sender, EventArgs e)
        {
            RichTextBox t = (RichTextBox)sender;
            t.SelectAll();
        }
    }
}